package cn.zhfeat.hatch.web.service;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import cn.zhfeat.core.base.BaseResultModel;
import cn.zhfeat.hatch.dto.company.CompanyDepartmentDto;
import cn.zhfeat.hatch.entity.company.CompanyDepartment;
import org.springframework.web.multipart.MultipartFile;

/**
 * @description: 部门信息相关接口层
 *
 * @author ZhangHao
 * @date 2018年5月24日 下午1:28:40 
 * @version 1.0.0.1
 */
public interface IDepartmentService {

	/**
	 * @description: 查询公司下全部的部门信息，用于展示部门树
	 *
	 * @return 
	 * @author ZhangHao
	 * @date 2018年5月24日 下午1:33:50 
	 * @version 1.0.0.1
	 */
	Object ajaxSelectAllDepartment(CompanyDepartmentDto dto);
	/**
	 * @description: 分页查询部门信息
	 *
	 * @param dto
	 * @return 
	 * @author ZhangHao
	 * @date 2018年5月26日 上午10:03:05 
	 * @version 1.0.0.1
	 */
	public BaseResultModel ajaxPageInfoByDto(CompanyDepartmentDto dto);
	
    /**
     * @description: 新增部门信息
     *
     * @param entity
     * @return 
     * @author ZhangHao
     * @date 2018年5月26日 下午2:35:47 
     * @version 1.0.0.1
     */
	BaseResultModel ajaxCreateDepartment(CompanyDepartment entity);
	
    /**
     * @description: 编辑部门信息
     *
     * @param entity
     * @return 
     * @author ZhangHao
     * @date 2018年5月26日 下午4:00:06 
     * @version 1.0.0.1
     */
	BaseResultModel ajaxEditDepartment(CompanyDepartment entity);
	
	/**
	 * @description: 删除部门信息
	 *
	 * @param entity
	 * @return 
	 * @author ZhangHao
	 * @date 2018年5月29日 上午10:22:05 
	 * @version 1.0.0.1
	 */
	BaseResultModel alaxDeleteDepartment(CompanyDepartment entity);
	
	/**
	 * @description: 导出企业下的部门
	 *
	 * @param dto
	 * @return 
	 * @author ZhangHao
	 * @date 2018年6月21日 下午2:30:38 
	 * @version 1.0.0.1
	 */
	BaseResultModel exportDepartmentList(HttpServletResponse response,CompanyDepartmentDto dto);
	
    /**
     * @description: 导入部门层级 
     *
     * @param file
     * @return 
     * @author ZhangHao
     * @date 2018年6月22日 上午9:29:01 
     * @version 1.0.0.1
     */
	BaseResultModel importdataManage(MultipartFile file);
	
    /**
     * @description: 导出导入部门失败的列表
     *
     * @param request
     * @param response 
     * @author ZhangHao
     * @date 2018年6月26日 上午10:33:00 
     * @version 1.0.0.1
     */
	void exportListError(HttpServletRequest request, HttpServletResponse response);
}
